﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            //一个考试管理系统，需要录入考生成绩，只能录入数字，否则会报类型转换异常。
            //请编写相关代码，
            //1、捕获FormatException异常，并打印输出“异常已处理；
            //2、捕获OverflowException异常，数值超出float范围的异常，并打印输出“异常已处理；
            //3、捕获一般异常Exception异常。
            //4、最终处理finally
            //录入成绩结束后，请输出，总学生数，总分数，平均分。
            Console.WriteLine("请输入学生个数");
            int num = int.Parse(Console.ReadLine());
            try
            {
                float[] arr = new float[num];
                float count = 0;
                float sum = 0;
                for (int i = 0; i < arr.Length; i++)
                {
                    Console.WriteLine("输入第" + (i + 1) + "个学生分数：");
                    arr[i] = float.Parse(Console.ReadLine());//这个地方 报错 因为 i的类型
                    count++;
                    sum += arr[i];

                }
                Console.WriteLine("count{0} sum{1} avg{2}", count, sum, sum / count);

            }
            catch (FormatException)
            {
                Console.WriteLine("FormatException异常已处理");
                /*throw;*/ //这行注释解决转换异常抛出两次的问题
            }
            catch (OverflowException)
            {
                Console.WriteLine("OverflowException异常已处理");
            }
            catch (Exception)
            {
                Console.WriteLine("Exception异常已处理");
            }
            finally
            {
                Console.WriteLine("END");

            }
        }
    }
}
